by R. Grothmann
This notebook tests pure versus equal tempered or approximated harmonics.
Create the time values for 4 seconds of sound.
>t=soundsec(4);
Let 440 Hz be our basic frequency.
>f=440;
New listen to a 220 Hz sound.
>s=sin(f*t/2); >playwave(s);
The following is a pure fifth.
>s=sin(f*t)+sin(f*3/2*t); >playwave(s);
Now we add the lower octave and vary the fifth in pitch. First the pure quint.
>s=sin(f*t)+sin(f*3/2*t)+sin(f*t/2); >playwave(s);
Now the equal tempered fifth. The difference is small. But with sine curves the beat (oscillating amplitude) is audible.
>s=sin(f*t)+sin(f*2^(7/12)*t)+sin(f*t/2); >playwave(s);
Now a fifth which is too much off.
>s=sin(f*t)+sin(f*1.49*t)+sin(f*t/2); >playwave(s);
Here are the corresponding numbers
>3/2, 2^(7/12), 1.49
1.5 1.49830707688 1.49
Difference in tones is measured in cents, where 100 cents is a halftone, and the scale is logarithmic.
Here is the error in cents. First the tempered fifth.
>1200*logbase(2^(7/12)/(3/2),2)
-1.95500086539
The error is -2 cents. The error for the 1.49 approximation is already -11 cents. This is too much to be OK.
>1200*logbase(1.49/(3/2),2)
-11.5802040405
The difference in frequency explains the oscillation, since
Since the pure fifth has no beat, we can hear a beat with a following frequency of 4.4 Hz.
>f*(3/2-2^(7/12)), f*(3/2-1.49)
0.74488617426 4.4
Repeat the same with the major third.
>s=sin(f*t)+sin(f*5/4*t)+sin(f*t/4); >playwave(s); // pure >s=sin(f*t)+sin(f*2^(4/12)*t)+sin(f*t/4); >playwave(s); // tempered >s=sin(f*t)+sin(f*1.27*t)+sin(f*t/4); >playwave(s); // way off >5/4, 2^(4/12), 1.24
1.25 1.25992104989 1.24